// #include <iostream>
// #include <type_traits>

// using namespace std;
// class Base1
// {
//     static int num;
// };
// class Base2 : public Base1
// {
//     static int num;
// };
// class Base3 : public Base1
// {
//     int num;
// };
// class Base4 : public Base3, public Base2
// {
//     static int num;
// };
// int main()
// {
//     cout << boolalpha;
//     cout << "is_pod<Base1>::value = " << is_pod<Base1>::value << endl;
//     cout << "is_pod<Base2>::value = " << is_pod<Base2>::value << endl;
//     cout << "is_pod<Base3>::value = " << is_pod<Base3>::value << endl;
//     cout << "is_pod<Base4>::value = " << is_pod<Base4>::value << endl;
//     return 0;
// }

// pod.cpp
#include <iostream>
#include <type_traits>
// using namespace std;

// struct A
// {
// };
// struct G : public A
// {
//     int foo;
//     A a;
// };
// struct B : A
// {
//     int j;
// };
// struct C
// {
// public:
//     int a;

// private:
//     int c;
// };
// struct D1
// {
//     static int i;
// };
// struct D2
// {
//     int i;
// };
// struct E1
// {
//     static int i;
// };
// struct E2
// {
//     int i;
// };
// struct D : public D1, public E1
// {
//     int a;
// };
// struct E : public D1, public E2
// {
//     int a;
// };
// struct F : public D2, public E2
// {
//     static int a;
// };
// struct H : public A
// {
//     A a;
//     int foo;
// };

// int main()
// {
//     cout << std::boolalpha;
//     cout << "is_standard_layout:" << std::endl;
//     cout << "A: " << is_standard_layout<A>::value << endl;
//     cout << "B: " << is_standard_layout<B>::value << endl;
//     cout << "C: " << is_standard_layout<C>::value << endl;
//     cout << "D: " << is_standard_layout<D>::value << endl;
//     cout << "D1: " << is_standard_layout<D1>::value << endl;
//     cout << "E: " << is_standard_layout<E>::value << endl;
//     cout << "F: " << is_standard_layout<F>::value << endl;
//     cout << "G: " << is_standard_layout<G>::value << endl;
//     cout << "H: " << is_standard_layout<H>::value << endl;

//     cout << "E: " << is_trivial<E>::value << endl;
//     return 0;
// }

// class Test
// {
// public:
//     Test(int x) : _x(x) {}
//     // Test(int x) = default;
//     int _x;
// };

// enum Colors
// {
//     red,
//     green
// };
// enum Color1
// {
//     red,
//     green
// };

// enum struct Col
// {
// };
// int main()
// {
// }